table of contents
AUTHSELECT-PROFILES(5) | AUTHSELECT-PROFILES(5) |
NAME¶
authselect-profiles - опис можливостей розширення профілів authselect.
ОПИС¶
На цій сторінці підручника наведено пояснення щодо того, як організовано профілі authselect, та того, як створювати профілі.
КАТАЛОГИ ПРОФІЛІВ¶
Профілі зберігаються у одному з трьох каталогів.
/usr/share/authselect/default
/usr/share/authselect/vendor
/etc/authselect/custom
ФАЙЛИ ПРОФІЛІВ¶
Кожен профіль складається з одного або декількох таких файлів, які містять обов’язковий опис профілю та описує зміни, які вносяться до системи.
README
system-auth
password-auth, smartcard-auth, fingerprint-auth
postlogin
nsswitch.conf
dconf-db
dconf-locks
РЯДКИ З УМОВАМИ¶
Кожен з цих файлів слугує як шаблон. Шаблон є простим текстовим файлом із необов’язковим використанням декількох операторів, якими можна скористатися для забезпечення роботи декількох додаткових можливостей профілів.
{continue if "можливість"}
{stop if "можливість"}
{include if "можливість"}
{exclude if "можливість"}
{imply "потенційна-можливість" if "можливість"}
{if "можливість":true|false}
{if "можливість":true}
Також у рядку умови можна скористатися логічним виразом замість визначення назви однієї можливості. У такому випадку вираз буде обчислено і визначено його істинність, а далі виконано оператор умови над результатом.
Синтаксична конструкція виразу складається з назв можливостей (наприклад "можливість"), обробка яких повертає true, якщо можливість визначено, і false, якщо можливість не визначено, та таких логічних операторів: and, or та not. Крім того, вираз може бути взято у лапки або складено з декількох допоміжних виразів.
Приклад:
{if "можливість1" or "можливість2":true}
{if not "можливість":true|false}
{if not "можливість":true}
{if "можливість1" and ("можливість2" or "можливість3"):true}
ПРИКЛАД¶
Тут наведено приклад використання оператора "if". Якщо можливість "with-sudo" увімкнено, буде додано "sss" до рядка sudoers.
passwd: sss files group: sss files netgroup: sss files automount: sss files services: sss files sudoers: files {if "with-sudo":sss}
Далі наведено приклад операторів "continue-if" і "include-if". Файл-результат буде порожнім, якщо не увімкнено можливість "with-smartcard". Якщо можливість увімкнено і також увімкнено можливість "with-faillock", також буде увімкнено підтримку pam_faillock.
{continue if "with-smartcard"} auth required pam_env.so auth required pam_faildelay.so delay=2000000 auth required pam_faillock.so preauth silent deny=4 unlock_time=1200 {include if "with-faillock"} auth [default=1 ignore=ignore success=ok] pam_succeed_if.so uid >= 1000 quiet auth [default=1 ignore=ignore success=ok] pam_localuser.so auth sufficient pam_unix.so nullok auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth sufficient pam_sss.so forward_pass auth required pam_faillock.so authfail deny=4 unlock_time=1200 {include if "with-faillock"} auth required pam_deny.so ...
Далі наведено приклад операторів "continue-if" з використанням логічного виразу. Файл-результат буде порожнім, якщо не увімкнено можливість "with-smartcard" або "with-smartcard-required". Це спрощує виклик команди authselect select, оскільки до нього не потрібно включати обидві можливості, — обов’язковою є лише "with-smartcard-required".
{continue if "with-smartcard" or "with-smartcard-required"} auth required pam_env.so auth required pam_faildelay.so delay=2000000 auth required pam_faillock.so preauth silent deny=4 unlock_time=1200 {include if "with-faillock"} auth [default=1 ignore=ignore success=ok] pam_succeed_if.so uid >= 1000 quiet auth [default=1 ignore=ignore success=ok] pam_localuser.so auth sufficient pam_unix.so nullok auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth sufficient pam_sss.so forward_pass auth required pam_faillock.so authfail deny=4 unlock_time=1200 {include if "with-faillock"} auth required pam_deny.so ...
Тут наведено приклад оператора "imply-if". Вмикання можливості "with-smartcard-required" також увімкне "with-smartcard" для забезпечення використання усіх відповідних модулів PAM. Результат буде таким самим, як і у попередньому прикладі.
{imply "with-smartcard" if "with-smartcard-required"} auth required pam_env.so auth required pam_faildelay.so delay=2000000 auth [success=1 default=ignore] pam_succeed_if.so service notin login:gdm:xdm:kdm:kde:xscreensaver:gnome-screensaver:kscreensaver quiet use_uid {include if "with-smartcard-required"} auth [success=done ignore=ignore default=die] pam_sss.so require_cert_auth ignore_authinfo_unavail {include if "with-smartcard-required"} auth [default=1 ignore=ignore success=ok] pam_succeed_if.so uid >= 1000 quiet auth [default=1 ignore=ignore success=ok] pam_localuser.so {exclude if "with-smartcard"} auth [default=2 ignore=ignore success=ok] pam_localuser.so {include if "with-smartcard"} auth [success=done authinfo_unavail=ignore user_unknown=ignore ignore=ignore default=die] pam_sss.so try_cert_auth {include if "with-smartcard"} auth sufficient pam_unix.so {if not "without-nullok":nullok} auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth sufficient pam_sss.so forward_pass auth required pam_deny.so ...
СТВОРЕННЯ ПРОФІЛЮ¶
Щоб зареєструвати новий профіль у authselect, створіть каталог у одному із місць для профілів authselect із файлами з наведеного вище списку. Наявними мають бути не обов’язково усі файли, лише файл README є обов’язковим. Інші файли може бути створено за потреби.
Команда authselect create-profile може бути корисною при створенні профілю. Див. сторінку підручника authselect(8) або виведені командою authselect create-profile --help дані, щоб дізнатися більше.
ТАКОЖ ПЕРЕГЛЯНЬТЕ¶
2018-02-17 |